home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / Apps / Utilities / Unix / iLog / IPref.m < prev    next >
Text File  |  1992-12-26  |  2KB  |  129 lines

  1.  
  2. /* Generated by Interface Builder */
  3.  
  4. #import "IPref.h"
  5.  
  6. @implementation IPref
  7.  
  8. - printerOff:sender
  9. {
  10.   printeroffF = !printeroffF;
  11.   
  12.   return self;
  13. }
  14.  
  15. - cshrc:sender
  16. {
  17.   cshrcF = !cshrcF;
  18.  
  19.   return self;
  20. }
  21.  
  22. - ilogspace:sender
  23. {
  24.   ilogspaceF = !ilogspaceF;
  25.   
  26.   return self;
  27. }
  28.  
  29. - login:sender
  30. {
  31.   loginF = !loginF;
  32.   
  33.    return self;
  34.  }
  35.  
  36. - updateButtons
  37. {
  38.   [printerOff setState:printeroffF];
  39.   [cshrc setState:cshrcF];
  40.   [login setState:loginF];
  41.   [ilogspace setState:ilogspaceF];
  42.  
  43.   return self;
  44. }
  45.  
  46. void doCSH(cmd)
  47.      char *cmd;
  48. {
  49.   FILE *fd;
  50.   
  51.   fd = popen(cmd, "r");
  52.   pclose(fd);
  53. }
  54.  
  55. - doTasks
  56. {
  57.   char cmd[256]; /* more than enough to hold the command */
  58.  
  59.   cmd[0]='\0';
  60.   
  61.   if (printeroffF) fprintf(stderr, "turn printer off\n");
  62.  
  63.   if (cshrcF) sprintf(cmd, "csh > /dev/console");
  64.   if (loginF) sprintf(cmd, "csh -f ~/.login > /dev/console");
  65.   if (loginF && cshrcF) sprintf(cmd, "csh ~/.login > /dev/console");
  66.   doCSH(cmd);
  67.  
  68.   if (ilogspaceF) sprintf(cmd, "csh -f ~/.ilogspace > /dev/console");
  69.   doCSH(cmd);
  70.  
  71.   return self;
  72. }
  73.  
  74.  
  75. - set:sender
  76.  {
  77.    /* this should really be done as a vector passed to NXWriteDefaults
  78.     * but I never bothered to figure out the c syntax for such a
  79.     * creature...  Admittedly, I'm a bum.
  80.     */
  81.    NXWriteDefault(appName, "cshrc", booltostr(cshrcF));
  82.    NXWriteDefault(appName, "ilogspace", booltostr(ilogspaceF));
  83.    NXWriteDefault(appName, "login", booltostr(loginF));
  84.    NXWriteDefault(appName, "printeroff", booltostr(printeroffF));
  85.    NXUpdateDefaults();
  86.  
  87.    return self;
  88.  }
  89.  
  90. - cancel:sender
  91. {
  92.   [self readDefaults];
  93.   
  94.   return self;
  95. }
  96.  
  97.  - readDefaults
  98. {
  99.   printeroffF = strtobool(NXGetDefaultValue(appName, "printeroff"));
  100.   loginF      = strtobool(NXGetDefaultValue(appName, "login"));
  101.   cshrcF      = strtobool(NXGetDefaultValue(appName, "cshrc"));
  102.   ilogspaceF  = strtobool(NXGetDefaultValue(appName, "ilogspace"));
  103.  
  104.   [self updateButtons];
  105.  
  106.   return self;
  107. }
  108.  
  109.  - appDidInit:sender
  110.  {
  111.    static NXDefaultsVector iLogDefaults = {
  112.      {"login", "NO"},
  113.      {"cshrc", "NO"},
  114.      {"ilogspace", "NO"},
  115.      {"printeroff", "NO"},
  116.      { NULL, NULL }
  117.    };
  118.    appName = "iLog";
  119.  
  120.    NXRegisterDefaults(appName, iLogDefaults);
  121.  
  122.    [self readDefaults];
  123.    [self doTasks];
  124.    [self updateButtons];
  125.  
  126.    return self;
  127. }
  128. @end
  129.